<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title> 关于配置文件 tsconfig.json 知识点  </title>
</head>
<body>
    
</body>
</html>
<script>
    //大年初二  
    //这短短的一生 我们最终都会失去 你不妨大胆一些 爱一个人 攀一座山 追一个梦.

    //这个文件是通过tsc --init命令生成的  注意看有没有全局安装ok
    //在桌面上新建一个文件夹TsDemo,然后打开VSCode，把文件托到编辑器中，然后打开终端Terminal,输入tsc --init。
    //输入完成后，就会出现tsconfig.json文件 

    //注意他是用来配置如何对ts文件进行编译的 即ts的编译配置文件 

//让tsconfig.json文件生效 
    //新建 demo.ts 代码如下 
    const person:string = "东东";
    //执行一下 tsc demo.ts 会生成一个demo.js文件 
    var person = "东东"    
    //tsconfig.json这个编译配置文件并没有生效。 到此时候

    //在tcsonfig.json里 找到complilerOptions属性下的removeComments:true选项，把注释去掉。
    //这个配置项是 编译时不显示注释，也就是编译出来的js文件不显示注释内容。
    //加入注释  
    // 11111111111111111111
    const person:string = "东东";
    //tsc demo.ts 转译为demo.js后 依然会由注释 说明tsconfig.js 没有起作用 
    //可直接 tsc命令 这时候的tsconfig.json才起作用 转译的demo.js 文件没有注释了 已经

//include,exclude&files 
    根目录下有多个ts文件 只想编译其中的一个文件时操作? 3个解决方法 

    //1 include属性(是包含的意思)用来指定编译文件的 比如现在只编译 demo.ts 而不编译demo2.ts文件 代码如下 
    //注意 配置文件 必须为"" 双引号 不支持单引号''
        "include":["demo.js"],
        "compilerOptions":{
            //any something
            //......
        }
    //这时候编译 就只编译demo.ts了      

    //2 exclude属性(不包含) 配置 除啥文件之外 即这个属性之外的文件才进行编译 
    //比如说这时候你 还只要编译demo.ts 这时候的写法 代码如下 
        "exclude":["demo2.ts"],
        "compilerOptions": {
            //any something
            //........
        }
    //这样写 依然只有demo.ts被编译为js文件 
    
    //3 files配置使用  
    //files配置效果和include几乎一样 无什么不同 只要配置到里面的文件都可以编译 
       "files":["demo.ts"],
        "compilerOptions": {
            //any something
            //........
        }
    //依然是demo.ts被编译    


//配置文件 compilerOptions配置项 
    //即ts是怎么编译为js文件的 

    complerOptions属性 
    //现在把removeComments的值设置为true，就是在js中不显示注释。(是否显示注释)
    //把removeComments的值，设置为false,这时候demo.js里就会有注释内容了

    strict属性 
    //strict属性为true 代表编译&书写规范 按照ts最严格对的规范来写 
    //值为false时 或者注释掉 可以对设置一些不严格的写法   

    noImplicitAny属性
    //准许你的注释 any不用特意表明 demo看代码 
    function js(name){
        return name;
    }
    //报错了 tsc也报错了 开启了strict:true 注释掉后 noImplicitAny值给false 不再报错 
    function js(name:any){
        return name;
    }
    //即设置为true 就是必须明确指定any类型的值  

    strictNullChecks属性
    //strictNullChecks给值false 即不强制检查NULL类型 demo看代码
    const js:string = null;
    //此时代码不报错  以前是报错的 
    //这里配置了 不强制检测null 类型 如果你设置了true值 就会报错 

    //ts-node 遵循tsconfig.js文件  

    rootDir和outDir 
    //现在你的js文件直接编译到根目录下 和ts混在一起 
    //但是在工作中 打包js时都沈城在特定的一个文件夹里 比如build
    //这时候通过配置 outDir来配置 当然也可以通过rootDir来指定ts文件位置 
    //比如把所有的ts文件放到src下 那配置文件 就应该这样写  
    {
        "outDir":"./build",
        "rootDir":"./src",
    } 
    //这时候cmd 命令行tsc 就会有不同的效果 

    编译es6语法到es5语法 -allowjs   
    //现在在目录下 新建es6语法的应该demo.js 代码如下 
    export const name = "老黑",
    //注意如果你不做如何的配置 直接tsc没有效果 需要到tsconfig.js中修改 俩地方
    "target":"es5",   //这一项默认是开启的 你必须保证它的开启 才能转换成功 
    "allowJs":"true"  //这个配置项意思为联通
    //这两下项开启后 使用tsc编译时 就会编译js文件了 

    sourceMap属性  
    //把sourceMap 的注释去掉 在打包的过程中就会生成sourceMap文件 
    //sourceMap简单说，SourceMap就是一个信息文件，里面储存着位置信息。
    //也就是说，转换后的代码的每一个位置，所对应的转换前的位置。
    //有了它，出错的时候，除错工具将直接显示原始代码，而不是转换后的代码。
    //这无疑给开发者带来了很大方便。

    noUnusedLocals和noUnusedParameters
    //noUnusedLocals：true开启后 程序会直接 给我们提示不能这样编写代码 有没有使用变量

    

























</script>